<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>

</body>

</html>
<script>
    // 1.给定一个排序数组和一个目标值，在数组中找到目标值，并返回其索引。如果目标值不存在于数组中，返回它将会被按顺序插入的位置。
    //   请必须使用时间复杂度为 O(log n) 的算法。
    /*示例 1:
         输入: nums = [1, 3, 5, 6], target = 5
         输出: 2
      示例 2:
        输入: nums = [1, 3, 5, 6], target = 2
        输出: 1
      示例 3:
        输入: nums = [1, 3, 5, 6], target = 7
        输出: 4 */

    var searchInsert = function (nums, target) {
        //遍历数组
        for (let i = 0; i < nums.length; i++) {
            //如果目标值大于数组最后一项
            if (target > nums[nums.length - 1]) {
                //直接尾加
                nums.push(target)
                //返回下标
                return nums.length - 1
            }
            //如果目标值大小于于数组第一项
            if (target < nums[0]) {
                //直接头加
                nums.unshift(target)
                //返回下标
                return 0
            }
            //如果找到与目标值相等的那一项
            if (nums[i] == target) {
                //返回下标
                return i
            }

            //如果数组中与目标值都不相等，目标值找插入位置
            if (target < nums[i]) {
                //插入
                nums.splice(i, 0, target)
                //返回下标
                return i
            }
        }
    };
    console.log(searchInsert([1, 3, 5, 6], 7))


</script>